package com.heg.api.util;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Random;

/**
 * 公共方法集合
 * @author 邓绪招
 * @time 2016-04-04
 * 常用方法如下： 
 * 1、获取系统当前时间并格式化
 * 2、将date时间类型转换成时间字符串
 * 3、将时间戳转换成时间字符串
 * 4、获取四个随机数作为短信验证码
 */
public class PublicMethodsUtils {
	
	private static SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
	
	/**
	 * 获取系统当前时间
	 * @return 当前时间字符串
	 */
	public static String getCurrTime(){
		return dateFormat.format(new Date());
	}
	
	/**
	 * 将date时间类型转换成时间字符串
	 * @param date 时间
	 * @return
	 */
	public static String changeDateToString(Date date){
		return dateFormat.format(date);
	}
	
	/**
	 * 将时间戳转换成时间字符串
	 * @param timeStamp 时间戳
	 */
	public static String getTimeStampToString(Long timeStamp){
		Long time = new Long(timeStamp);
		String stampTime = dateFormat.format(time);
		return stampTime;
	}
	
	/**
	 * 获取四个随机数作为短信验证码
	 * @return
	 */
	public static String getBuildSecCodes(){
		Random random = new Random();
		String str_secCodes = "";
		for (int i = 0; i < 4; i++) {
			str_secCodes += random.nextInt(9);
		}
		return str_secCodes;
	}
	
	/**
	 * 时间字符串转化成Date
	 * @param str 待转换时间字符串
	 * @throws ParseException 
	 * @throws Exception 
	 */
	public static Date getDateFormat(String str){
		try {
			Date strDate = dateFormat.parse(str);
			return str != null && !"".equals(str) && !"null".equals(str) ? strDate : null;
		} catch (ParseException e) {
			return null;
		}
	}
	
	/**
	 * 验证码时效性验证
	 * @param startTime 开始时间
	 * @return
	 */
	public static Boolean verify_startEndTime(String sendTime){
		Date sendDate = getDateFormat(sendTime);
		Date currDate = getDateFormat(getCurrTime());
		Long diffDate = currDate.getTime() - sendDate.getTime();
		if(diffDate / (1000 * 60) > 1){
			return false;
		} else {
			return true;
		}
	}

}
